package io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;

/**
 * OutputStream
 * 抽象类，为各种输出字节流的基类（超类）
 * 实现Closeable接口，在try...catch语句中，在try后边的小括号中引用或生成对象时即可实现在退出try...catch语句时自动关闭流
 * 实现java.io.Flushable
 *
 * public abstract void write(int b) throws IOException     写入一个字节，写入的字节是参数b的8个低阶位
 *
 * public void write(byte b[], int off, int len) throws IOException
 *                                      将字节数组b中从下标off开始到len（不包含len）部分的字节写入此输出流
 *
 * public void write(byte b[]) throws IOException   将b.length字节从指定的字节数组写入此输出流
 *
 * public void flush() throws IOException           刷新此输出流并强制写入所有缓冲的输出字节
 *
 * public void close() throws IOException           关闭此输出流并释放与此流关联的任何系统资源
 * */
public class OutputStreamDemo {
    public static void main(String[] args) throws IOException {
        OutputStream out = new FileOutputStream("files/out.txt", true);
        String str = "第二参数append为true表示追加内容\n";
        for (int i = 0; i < 3; i++)
            out.write(str.getBytes(StandardCharsets.UTF_8));
        out.flush();
        out.close();
    }
}
